package com.sany.taskmanager.room.dao;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import com.sany.taskmanager.room.entity.LocalTaskInfo;

import java.util.List;

@Dao
public interface TaskDao {

    /**
     * 增
     */
    @Insert
    Long insertTask(LocalTaskInfo taskInfo);

    /**
     * 删：单个任务
     */
    @Delete
    void deleteTask(LocalTaskInfo taskInfo);

    /**
     * 删：多个任务
     */
    @Delete
    void deleteTasks(List<LocalTaskInfo> taskList);

    /**
     * 改
     */
    @Update
    void updateTask(LocalTaskInfo taskInfo);

    /**
     * 查：物料清单（不含车型号）
     */
    @Query("SELECT * FROM task_info where carModelNum is null")
    List<LocalTaskInfo> getMaterialTasks();

    /**
     * 查：物料清单（含车型号）
     */
    @Query("SELECT * FROM task_info where carModelNum is not null")
    List<LocalTaskInfo> getCarModelTasks();


    /**
     * 根据相关的条件，查询数据中存在的数量
     *
     * @param materialNum：物料编码
     * @param colorType：大臂颜色
     * @param boomType：是否新品
     * @return 满足条件的数量
     */
    @Query("SELECT count(*) FROM task_info where materialNum=(:materialNum) and colorType=(:colorType) and boomType=(:boomType)")
    Long getTaskCountByParams(String materialNum, int colorType, int boomType);
}
